//网上说质数原根的个数就是互质数个数的互质数个数，所以对于质数来说就是质数本身减一的互质数个数。但是为什么呢？
//以及他这个求互质数个数的方法我也看不懂。。
#include <iostream>
using namespace std;
int euler(int n){
	int res = n;
	for(int i = 2;i*i<=n;i++){
		if(n%i==0){
			res = res/i*(i-1);
			while(n%i==0){
				n/=i;
				
			}
		}
	}if(n>1){
		res = res/n*(n-1);
		
	}return res;
	
}int main(){
	int n;
	while(cin>>n){
		cout<<euler(n-1)<<endl;
		
	}return 0;
	
}